/*jslint node:true*/
'use strict';
var domain = require('domain');
var events = require('events');

var emitter1 = new events.EventEmitter();
var domain1 = domain.create();

domain1.on('error', function (err) {
    console.log('domain1 处理这个错误(' + err.message + ')');
});
domain1.add(emitter1);

emitter1.on('error', function (err) {
    console.log('监视器处理这个错误(' + err.message + ')');
});
emitter1.emit('error', new Error('通过监视器处理'));
emitter1.removeAllListeners('error');
emitter1.emit('error', new Error('通过domain1处理'));

var domain2 = domain.create();
domain2.on('error', function (err) {
    console.log('domain2 处理这个错误(' + err.message + ')');
});

domain2.run(function () {
    var emitter2 = new events.EventEmitter();
    emitter2.emit('error', new Error('通过domain2处理'));
});

domain1.remove(emitter1);
emitter1.emit('error', new Error('转换为异常，系统将崩溃！'));
